What is @types/ws?
The @types/ws package provides TypeScript type definitions for the ws (WebSocket) library, enabling developers to use ws in TypeScript projects with type checking and IntelliSense support. It doesn't add any functionality on its own but allows for a better development experience when working with WebSockets in TypeScript.
What are @types/ws's main functionalities?
Creating a WebSocket server
This code sample demonstrates how to create a WebSocket server that listens on port 8080. It handles new connections and messages from clients, and sends a message to clients upon connection.
import * as WebSocket from 'ws';
const wss = new WebSocket.Server({ port: 8080 });
wss.on('connection', function connection(ws) {
ws.on('message', function incoming(message) {
console.log('received: %s', message);
});
ws.send('something');
});
Connecting to a WebSocket server
This example shows how to connect to a WebSocket server and interact with it by sending a message upon opening the connection and logging messages received from the server.
import * as WebSocket from 'ws';
const ws = new WebSocket('ws://www.host.com/path');
ws.on('open', function open() {
ws.send('something');
});
ws.on('message', function incoming(data) {
console.log(data);
});
Other packages similar to @types/ws
socket.io
Socket.IO is a library that enables real-time, bidirectional and event-based communication between web clients and servers. It's more feature-rich than ws, providing built-in support for broadcasting, rooms, and namespaces, but it's also heavier and requires its client library for full functionality.
faye-websocket
Faye is a WebSocket (and EventSource) library that is designed to be simple to use. It's similar to ws in its basic functionality but also includes support for WebSocket client functionality in both Node.js and browsers, making it a more versatile option for some projects.